package com.fivefu.core.hik.services;
import com.fivefu.core.hik.dto.response.CameraDetail;
import com.fivefu.core.hik.dto.response.CameraLonLatResp;
import com.fivefu.core.hik.entity.DbHikCamera;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 海康监控点表 服务类
 * </p>
 *
 * @author 
 * @since 2022-07-05 09:15:14
 */
public interface DbHikCameraService extends IService<DbHikCamera> {

    /**
     * 编辑海康监控点信息
     * @param camera 监控点信息
     */
    void editHikCamera(DbHikCamera camera);

    /**
     * 获得监控点经纬度
     * @param cameraName 监控点名称
     * @return
     */
    List<CameraLonLatResp> queryCameraLonLat(String cameraName);

    /**
     * 获得监控点详情
     * @param id 监控点编号
     * @return
     */
    CameraDetail queryCameraDetail(Integer id);

    /**
     * 获得未删除的监控点唯一标识集合
     * @return
     */
    List<String> queryCameraIds();

    /**
     * 通过唯一标识查询探头信息
     * @param cameraIndexCode 探头唯一标识
     * @return
     */
    DbHikCamera queryCameraByIndexCode(String cameraIndexCode);

    /**
     * 获取数据字典编号
     * @param dictParentCode
     * @param dictValue
     * @param suffix
     * @return
     */
    String queryDictCodes(String dictParentCode, String dictValue, String suffix);

    /**
     * 查询海康所有监控点信息
     * @return
     */
    List<DbHikCamera> queryAllCamera();

    /**
     * 修改监控点在线状态
     * @param cameraIndexCode 监控点唯一编号
     * @param onlineStatus 在线状态（0-未知，1-在线，2-离线）
     */
    void changeCameraOnlineStatus(String cameraIndexCode, Integer onlineStatus);


    void deleteHikCamera(List<String> cameraIndexCodes, String userId);
}
